Controls are Virtual Panels classes dedicated to manipulate Objects and control
the flow of the program. There are two kinds of Controls - the buttons
and the menus - which do the same thing - call attached user defined
procedures (section 2.6). The difference is in their organization.
Buttons are linked in button groups. Button groups in their turn are
linked in what we call button system. The menu structure is declared in
the special menu system function. Menu system function must be
registered with the current button system in the program.
* State of the Control - the private data member keeps the state of button or menu item. There can be four states:
CRL_DISABLED - Control is disabled. It means that it is grayed on the screen and has no effect.
CRL_HLDISABLED - Control is disabled but currently highlighted, i.e. chosen, but pushing Enter on the keyboard does not lead to any effect.
CRL_ACTIVE - Control is enabled and highlighted and pushing Enter calls button or menu procedure.
CRL_ENABLED - Control is enabled but not highlighted.